Java 保留几位小数

您所在的位置:网站首页 float型保留几位小数 java Java 保留几位小数

Java 保留几位小数

2023-07-20 03:20| 来源: 网络整理| 查看: 265

java 中常见的保留几位小数的操作,通常都会用到BigDecimal 类

例如:

/** * 四舍五入 */ @Test public void test() { double num = 111231.5585; BigDecimal b = new BigDecimal(num); //保留2位小数 double result = b.setScale(2, BigDecimal.ROUND_HALF_UP).doubleValue(); System.out.println(result); //111231.56 }

或者

public static void main(String[] args) { // TODO Auto-generated method stub double f1 = 124.454654; java.text.DecimalFormat df = new java.text.DecimalFormat("#.000"); f1 = Double.parseDouble(df.format(f1)); System.out.println(f1); }

但是他们都有一个弊端,就是当数组较大时,会产生 科学计数法。

public static void main(String[] args) { // TODO Auto-generated method stub double f1 = 1234324535; java.text.DecimalFormat df = new java.text.DecimalFormat("#.000"); f1 = Double.parseDouble(df.format(f1)); System.out.println(f1); //1.234324535E9 }

如上所示。

然后查找如何消除科学计数法,找到博客  链接:https://blog.csdn.net/weixin_43992934/article/details/108006838

 

确实可以解决科学计数法的问题。

但是如果我希望得到的值,乘以100或者1000怎么办呢?于是想到移动小数点。

/** * 移动小数点 * @param str 待移动的字符串 * @param capacity 向右移动的位数 * @return */ public static String moveDot(String str,int capacity) { if (str.equals("0.000")) { return "0.0"; } if (str.equals("0.0000")) { return "0.00"; } int index = str.indexOf("."); char[] cas = str.toCharArray(); for (int i = 0 ;i


【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3